package com.zhang.heap;

/**
 * @author 张吉鑫
 * @Description 堆
 * @date 2021/4/5 17:26
 */
public interface Heap<E> {

    /**
     * 元素数量
     * @return
     */
    int size();

    /**
     * 判断是否为空
     * @return
     */
    boolean isEmpty();

    /**
     * 清空所有元素
     */
    void clear();

    /**
     * 添加元素
     * @param element
     */
    void add(E element);

    /**
     * 获取堆顶元素
     * @return
     */
    E get();

    /**
     * 删除堆顶元素
     * @return
     */
    E remove();

    /**
     * 删除堆顶元素，并且插入一个新元素
     * @param element
     * @return
     */
    E replace(E element);
}
